home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: Alpha
/
Whiteline Alpha.iso
/
progtool
/
modula2
/
lpr
/
mogli
/
vdi.def
< prev
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
MacRoman (detected)
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
Modula Definition
|
1994-09-22
|
34.8 KB
|
1,123 lines
(* --------------------------------------------------------------------- *)
(* VDI (Virtual Device Interface) DEFINITION MODULE *)
(* --------------------------------------------------------------------- *)
(* Einheitliche Modula-2 Schnittstelle zum GEM VDI des ATARI ST *)
(* --------------------------------------------------------------------- *)
(* Uwe Brahm *)
(* Johannes Schneiders *)
(* --------------------------------------------------------------------- *)
(* Version 1.0 von Mittwoch dem 1. November 1989 *)
(* --------------------------------------------------------------------- *)
(* Alle Rechte vorbehalten. Insbesondere bleiben Änderungen jeglicher *)
(* Art, sowie Anpassungen an andere Compiler bzw. Computersysteme *)
(* ausschließlich uns vorbehalten. *)
(* Copyright © 1989 by Uwe Brahm, Johannes Schneiders. *)
(* --------------------------------------------------------------------- *)
(* Es wurden alle erdenklichen Maßnahmen getroffen, um die Korrektheit *)
(* dieser Bibliothek zu gewährleisten. Wir können dennoch keine Gewähr *)
(* für die Vollständigkeit und Korrektheit übernehmen und schließen *)
(* deshalb alle Gewährleistungsansprüche, die durch Fehler in der *)
(* Software entstehen, ausdrücklich aus. *)
(* --------------------------------------------------------------------- *)
(* Um einen einheitlichen Standard auch in Zukunft gewährleisten zu *)
(* können, existiert eine zentrale Softwarewartung der Bibliotheken. *)
(* Sollten Sie Fehler entdecken oder Verbesserungsvorschläge haben, *)
(* wenden Sie sich schriftlich an: *)
(* U.Brahm, J.Schneiders, Carlo-Schmid-Straße 15, 6750 Kaiserslautern *)
(* --------------------------------------------------------------------- *)
(* Unterstützte Compiler: *)
(* TDI Modula-2 (Version 3.00) *)
(* SPC Modula-2 (Version 1.42) *)
(* --------------------------------------------------------------------- *)
(* ATARI ST ist ein Warenzeichen der Firma Atari *)
(* GEM ist ein Warenzeichen der Firma Digital Research *)
(* --------------------------------------------------------------------- *)
DEFINITION MODULE VDI;
FROM SYSTEM IMPORT
ADDRESS;
(* ------------------- VDI Allgemeine Deklarationen -------------------- *)
CONST
MaxWorkInSize = 11;
MaxWorkOutSize = 158;
TYPE
WorkInType = ARRAY [0..MaxWorkInSize - 1] OF INTEGER;
WorkOutType = ARRAY [0..MaxWorkOutSize - 1] OF INTEGER;
(* ---------------------- VDI Kontroll-Bibliothek ---------------------- *)
CONST
(* ClippingFlag : INTEGER *)
ClipOff = 0;
ClipOn = 1;
PROCEDURE OpenWorkstation (WorkIn : WorkInType;
VAR Handle : INTEGER;
VAR WorkOut : WorkOutType);
(* VDI-Funktionsnummer: 1 *)
PROCEDURE CloseWorkstation (Handle : INTEGER);
(* VDI-Funktionsnummer: 2 *)
PROCEDURE OpenVirtualScreenWorkstation (WorkIn : WorkInType;
VAR Handle : INTEGER;
VAR WorkOut : WorkOutType);
(* VDI-Funktionsnummer: 100 *)
PROCEDURE CloseVirtualScreenWorkstation (Handle : INTEGER);
(* VDI-Funktionsnummer: 101 *)
PROCEDURE ClearWorkstation (Handle : INTEGER);
(* VDI-Funktionsnummer: 3 *)
PROCEDURE UpdateWorkstation (Handle : INTEGER);
(* VDI-Funktionsnummer: 4 *)
PROCEDURE LoadFonts (Handle : INTEGER;
FontIndex : INTEGER;
VAR AdditionalFonts : INTEGER);
(* VDI-Funktionsnummer: 119 *)
PROCEDURE UnloadFonts (Handle : INTEGER;
FontIndex : INTEGER);
(* VDI-Funktionsnummer: 120 *)
PROCEDURE SetClipping (Handle : INTEGER;
Flag : INTEGER (*0..1*);
VAR PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 129 *)
(* ---------------------- VDI Ausgabe-Bibliothek ---------------------- *)
PROCEDURE PolyLine (Handle : INTEGER;
Count : INTEGER;
VAR PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 6 *)
PROCEDURE PolyMarker (Handle : INTEGER;
Count : INTEGER;
VAR PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 7 *)
PROCEDURE GraphicText (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
VAR Text : ARRAY OF CHAR);
(* VDI-Funktionsnummer: 8 *)
PROCEDURE FilledPolygon (Handle : INTEGER;
Count : INTEGER;
VAR PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 9 *)
PROCEDURE CellArray (Handle : INTEGER;
VAR PointsXY : ARRAY OF INTEGER;
RowLength : INTEGER;
ElementsUsed : INTEGER;
NumberRows : INTEGER;
WriteMode : INTEGER;
VAR Colors : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 10 *)
PROCEDURE Fill (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
Color : INTEGER);
(* VDI-Funktionsnummer: 103 *)
PROCEDURE FilledRectangle (Handle : INTEGER;
VAR PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 114 *)
PROCEDURE Bar (Handle : INTEGER;
VAR PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 11, GDP 1 *)
PROCEDURE Arc (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
Radius : INTEGER;
BeginAngle : INTEGER;
EndAngle : INTEGER);
(* VDI-Funktionsnummer: 11, GDP 2 *)
PROCEDURE Pie (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
Radius : INTEGER;
BeginAngle : INTEGER;
EndAngle : INTEGER);
(* VDI-Funktionsnummer: 11, GDP 3 *)
PROCEDURE Circle (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
Radius : INTEGER);
(* VDI-Funktionsnummer: 11, GDP 4 *)
PROCEDURE Ellipse (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
XRadius : INTEGER;
YRadius : INTEGER);
(* VDI-Funktionsnummer: 11, GDP 5 *)
PROCEDURE EllipticalArc (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
XRadius : INTEGER;
YRadius : INTEGER;
BeginAngle : INTEGER;
EndAngle : INTEGER);
(* VDI-Funktionsnummer: 11, GDP 6 *)
PROCEDURE EllipticalPie (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
XRadius : INTEGER;
YRadius : INTEGER;
BeginAngle : INTEGER;
EndAngle : INTEGER);
(* VDI-Funktionsnummer: 11, GDP 7 *)
PROCEDURE RoundedRectangle (Handle : INTEGER;
VAR PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 11, GDP 8 *)
PROCEDURE FilledRoundedRectangle (Handle : INTEGER;
VAR PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 11, GDP 9 *)
PROCEDURE JustifiedText (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
VAR Text : ARRAY OF CHAR;
TextWidth : INTEGER;
WordSpace : INTEGER;
CharSpace : INTEGER);
(* VDI-Funktionsnummer: 11, GDP 10 *)
(* ---------------------- VDI Attribut-Bibliothek ---------------------- *)
CONST
(* WritingMode : INTEGER *)
Normal = 0;
Transparent = 1;
XOR = 2;
Reverse = 3;
(* LineEndType : INTEGER *)
Cornered = 0;
Arrowed = 1;
Rounded = 2;
(* MarkerType : INTEGER *)
Point = 0;
Plus = 1;
Star = 2;
Square = 3;
Cross = 4;
Rhomb = 5;
(* TextEffect : BITSET *)
Bold = 0;
Light = 1;
Skewed = 2;
Under = 3;
Hollow = 4;
Shadow = 5;
(* TextAlignment : INTEGER *)
Left = 0;
Center = 1;
Right = 2;
BaseLine = 0;
HalfLine = 1;
AscendLine = 2;
BottomLine = 3;
DescendLine = 4;
TopLine = 5;
(* FillInteriorType : INTEGER *)
None = 0;
Solid = 1;
Pattern = 2;
Hatchure = 3;
UserDefined = 4;
(* PerimeterVisibility : INTEGER *)
PerimeterOff = 0;
PerimeterOn = 1;
PROCEDURE SetWritingMode (Handle : INTEGER;
Mode : INTEGER;
VAR SetMode : INTEGER);
(* VDI-Funktionsnummer: 32 *)
PROCEDURE SetColorRepresentation (Handle : INTEGER;
Color : INTEGER;
VAR RGBIn : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 14 *)
PROCEDURE SetLineType (Handle : INTEGER;
Type : INTEGER;
VAR SetType : INTEGER);
(* VDI-Funktionsnummer: 15 *)
PROCEDURE DefineLinePattern (Handle : INTEGER;
Pattern : INTEGER);
(* VDI-Funktionsnummer: 113 *)
PROCEDURE SetLineWidth (Handle : INTEGER;
Width : INTEGER;
VAR SetWidth : INTEGER);
(* VDI-Funktionsnummer: 16 *)
PROCEDURE SetLineColor (Handle : INTEGER;
Color : INTEGER;
VAR SetColor : INTEGER);
(* VDI-Funktionsnummer: 17 *)
PROCEDURE SetLineEndType (Handle : INTEGER;
BeginType : INTEGER;
EndType : INTEGER);
(* VDI-Funktionsnummer: 108 *)
PROCEDURE SetMarkerType (Handle : INTEGER;
Type : INTEGER;
VAR SetType : INTEGER);
(* VDI-Funktionsnummer: 18 *)
PROCEDURE SetMarkerHeight (Handle : INTEGER;
Height : INTEGER;
VAR SetHeight : INTEGER);
(* VDI-Funktionsnummer: 19 *)
PROCEDURE SetMarkerColor (Handle : INTEGER;
Color : INTEGER;
VAR SetColor : INTEGER);
(* VDI-Funktionsnummer: 20 *)
PROCEDURE SetCharHeightAbsolute (Handle : INTEGER;
Height : INTEGER;
VAR CharWidth : INTEGER;
VAR CharHeight : INTEGER;
VAR CellWidth : INTEGER;
VAR CellHeight : INTEGER);
(* VDI-Funktionsnummer: 12 *)
PROCEDURE SetCharHeightPoints (Handle : INTEGER;
Points : INTEGER;
VAR CharWidth : INTEGER;
VAR CharHeight : INTEGER;
VAR CellWidth : INTEGER;
VAR CellHeight : INTEGER;
VAR SetPoints : INTEGER);
(* VDI-Funktionsnummer: 107 *)
PROCEDURE SetTextRotation (Handle : INTEGER;
Angle : INTEGER;
VAR SetAngle : INTEGER);
(* VDI-Funktionsnummer: 13 *)
PROCEDURE SetTextFont (Handle : INTEGER;
FontIndex : INTEGER;
VAR SetFont : INTEGER);
(* VDI-Funktionsnummer: 21 *)
PROCEDURE SetTextColor (Handle : INTEGER;
Color : INTEGER;
VAR SetColor : INTEGER);
(* VDI-Funktionsnummer: 22 *)
PROCEDURE SetTextEffects (Handle : INTEGER;
Effect : BITSET;
VAR SetEffect : BITSET);
(* VDI-Funktionsnummer: 106 *)
PROCEDURE SetTextAlignment (Handle : INTEGER;
HorizAlignment : INTEGER;
VertAlignment : INTEGER;
VAR SetHorizAlignment : INTEGER;
VAR SetVertAlignment : INTEGER);
(* VDI-Funktionsnummer: 39 *)
PROCEDURE SetFillInteriorType (Handle : INTEGER;
Type : INTEGER;
VAR SetType : INTEGER);
(* VDI-Funktionsnummer: 23 *)
PROCEDURE SetFillType (Handle : INTEGER;
Type : INTEGER;
VAR SetType : INTEGER);
(* VDI-Funktionsnummer: 24 *)
PROCEDURE SetFillColor (Handle : INTEGER;
Color : INTEGER;
VAR SetColor : INTEGER);
(* VDI-Funktionsnummer: 25 *)
PROCEDURE SetFillPerimeterVisibility (Handle : INTEGER;
Visibility : INTEGER;
VAR SetVisibility : INTEGER);
(* VDI-Funktionsnummer: 104 *)
PROCEDURE DefineFillPattern (Handle : INTEGER;
VAR Pattern : ARRAY OF INTEGER;
Planes : INTEGER);
(* VDI-Funktionsnummer: 112 *)
(* ----------------------- VDI Raster-Bibliothek ----------------------- *)
TYPE
MFDB = RECORD
Address : ADDRESS;
Width : INTEGER;
Height : INTEGER;
WidthWords : INTEGER;
RasterFormat : INTEGER;
Planes : INTEGER;
Reserved1 : INTEGER;
Reserved2 : INTEGER;
Reserved3 : INTEGER;
END;
PROCEDURE CopyRasterOpaque (Handle : INTEGER;
WriteMode : INTEGER;
VAR PointsXY : ARRAY OF INTEGER;
VAR SourceMFDB : MFDB;
VAR DestMFDB : MFDB);
(* VDI-Funktionsnummer: 109 *)
PROCEDURE CopyRasterTransparent (Handle : INTEGER;
WriteMode : INTEGER;
VAR PointsXY : ARRAY OF INTEGER;
VAR SourceMFDB : MFDB;
VAR DestMFDB : MFDB;
VAR Colors : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 121 *)
PROCEDURE TransformForm (Handle : INTEGER;
VAR SourceMFDB : MFDB;
VAR DestMFDB : MFDB);
(* VDI-Funktionsnummer: 110 *)
PROCEDURE GetPixel (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
VAR PixelSet : INTEGER;
VAR Color : INTEGER);
(* VDI-Funktionsnummer: 105 *)
(* ---------------------- VDI Eingabe-Bibliothek ----------------------- *)
CONST
(* InputDevice : INTEGER *)
Locator = 1;
Valuator = 2;
Choice = 3;
Text = 4;
(* InputMode : INTEGER *)
Request = 1;
Sample = 2;
(* Status : INTEGER (InputChoiceSample) *)
NoKeyPressed = 0;
KeyPressed = 1;
(* EchoMode : INTEGER *)
EchoOff = 0;
EchoOn = 1;
(* Reset : INTEGER (ShowGraphicCursor) *)
ShowReset = 0;
ShowNormal = 1;
(* MouseButtonStatus : BITSET *)
LeftButton = 0;
(* KeyboardStatus : BITSET *)
RightShift = 0;
LeftShift = 1;
ControlKey = 2;
Alternate = 3;
PROCEDURE SetInputMode (Handle : INTEGER;
Device : INTEGER;
Mode : INTEGER;
VAR SetMode : INTEGER);
(* VDI-Funktionsnummer: 33 *)
PROCEDURE InputLocatorRequest (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
VAR EndXPos : INTEGER;
VAR EndYPos : INTEGER;
VAR TermKey : INTEGER);
(* VDI-Funktionsnummer: 28 *)
PROCEDURE InputLocatorSample (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
VAR EndXPos : INTEGER;
VAR EndYPos : INTEGER;
VAR Key : INTEGER;
VAR Status : BITSET);
(* VDI-Funktionsnummer: 28 *)
PROCEDURE InputValuatorRequest (Handle : INTEGER;
BeginValue : INTEGER;
VAR EndValue : INTEGER;
VAR TermKey : INTEGER);
(* VDI-Funktionsnummer: 29 *)
(* Im ROM-Treiber nicht implementiert *)
PROCEDURE InputValuatorSample (Handle : INTEGER;
BeginValue : INTEGER;
VAR EndValue : INTEGER;
VAR Key : INTEGER;
VAR Status : INTEGER);
(* VDI-Funktionsnummer: 29 *)
(* Im ROM-Treiber nicht implementiert *)
PROCEDURE InputChoiceRequest (Handle : INTEGER;
InitKey : INTEGER;
VAR TermKey : INTEGER);
(* VDI-Funktionsnummer: 30 *)
PROCEDURE InputChoiceSample (Handle : INTEGER;
VAR Key : INTEGER;
VAR Status : INTEGER);
(* VDI-Funktionsnummer: 30 *)
PROCEDURE InputTextRequest (Handle : INTEGER;
MaxLength : INTEGER;
EchoMode : INTEGER;
VAR EchoPos : ARRAY OF INTEGER;
VAR Text : ARRAY OF CHAR);
(* VDI-Funktionsnummer: 31 *)
PROCEDURE InputTextSample (Handle : INTEGER;
MaxLength : INTEGER;
EchoMode : INTEGER;
EchoPos : ARRAY OF INTEGER;
VAR Text : ARRAY OF CHAR;
VAR Status : INTEGER);
(* VDI-Funktionsnummer: 31 *)
PROCEDURE SetMouseForm (Handle : INTEGER;
VAR MouseForm : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 111 *)
PROCEDURE ExchangeTimerInterruptVector (Handle : INTEGER;
NewCodeAddress : ADDRESS;
VAR OldCodeAddress : ADDRESS;
VAR TimeInterval : INTEGER);
(* VDI-Funktionsnummer: 118 *)
PROCEDURE ShowGraphicCursor (Handle : INTEGER;
Reset : INTEGER);
(* VDI-Funktionsnummer: 122 *)
PROCEDURE HideGraphicCursor (Handle : INTEGER);
(* VDI-Funktionsnummer: 123 *)
PROCEDURE SampleMouseButtonState (Handle : INTEGER;
VAR MouseButtonState : BITSET;
VAR XPos : INTEGER;
VAR YPos : INTEGER);
(* VDI-Funktionsnummer: 124 *)
PROCEDURE ExchangeButtonChangeVector (Handle : INTEGER;
NewCodeAddress : ADDRESS;
VAR OldCodeAddress : ADDRESS);
(* VDI-Funktionsnummer: 125 *)
PROCEDURE ExchangeMouseMovementVector (Handle : INTEGER;
NewCodeAddress : ADDRESS;
VAR OldCodeAddress : ADDRESS);
(* VDI-Funktionsnummer: 126 *)
PROCEDURE ExchangeCursorChangeVector (Handle : INTEGER;
NewCodeAddress : ADDRESS;
VAR OldCodeAddress : ADDRESS);
(* VDI-Funktionsnummer: 127 *)
PROCEDURE SampleKeyboardState (Handle : INTEGER;
VAR KeyBoardState : BITSET);
(* VDI-Funktionsnummer: 128 *)
(* ---------------------- VDI Auskunft-Bibliothek ---------------------- *)
PROCEDURE ExtendedInquire (Handle : INTEGER;
Mode : INTEGER;
VAR WorkOut : WorkOutType);
(* VDI-Funktionsnummer: 102 *)
PROCEDURE InquireColorRepresentation (Handle : INTEGER;
Color : INTEGER;
Mode : INTEGER;
VAR RGB : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 26 *)
PROCEDURE InquireLineAttributes (Handle : INTEGER;
VAR Attributes : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 35 *)
PROCEDURE InquireMarkerAttributes (Handle : INTEGER;
VAR Attributes : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 36 *)
PROCEDURE InquireFillAttributes (Handle : INTEGER;
VAR Attributes : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 37 *)
PROCEDURE InquireTextAttributes (Handle : INTEGER;
VAR Attributes : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 38 *)
PROCEDURE InquireTextExtent (Handle : INTEGER;
VAR Text : ARRAY OF CHAR;
VAR Extent : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 116 *)
PROCEDURE InquireCharCellWidth (Handle : INTEGER;
Character : CHAR;
VAR CellWidth : INTEGER;
VAR LeftDelta : INTEGER;
VAR RightDelta : INTEGER;
VAR Status : INTEGER);
(* VDI-Funktionsnummer: 117 *)
PROCEDURE InquireFontName (Handle : INTEGER;
FontIndex : INTEGER;
VAR InquiredFont : INTEGER;
VAR FontName : ARRAY OF CHAR);
(* VDI-Funktionsnummer: 130 *)
PROCEDURE InquireCellArray (Handle : INTEGER;
VAR PointsXY : ARRAY OF INTEGER;
RowLength : INTEGER;
NumRows : INTEGER;
VAR ElementsUsed : INTEGER;
VAR RowsUsed : INTEGER;
VAR Status : INTEGER;
VAR Colors : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 27 *)
PROCEDURE InquireInputMode (Handle : INTEGER;
Device : INTEGER;
VAR Mode : INTEGER);
(* VDI-Funktionsnummer: 115 *)
PROCEDURE InquireFontInfo (Handle : INTEGER;
VAR MinADE : INTEGER;
VAR MaxADE : INTEGER;
VAR Distances : ARRAY OF INTEGER;
VAR MaxWidth : INTEGER;
VAR Effects : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 131 *)
PROCEDURE InquireJustifiedText (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
Text : ARRAY OF CHAR;
TextWidth : INTEGER;
WordSpace : INTEGER;
CharSpace : INTEGER;
VAR Offsets : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 132 *)
(* Ab GEM 2.0 implementiert *)
(* ----------------------- VDI Escape-Bibliothek ----------------------- *)
PROCEDURE InquireAlphaCharCells (Handle : INTEGER;
VAR Rows : INTEGER;
VAR Colums : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 1 *)
PROCEDURE ExitAlphaMode (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 2 *)
PROCEDURE EnterAlphaMode (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 3 *)
PROCEDURE AlphaCursorUp (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: *)
PROCEDURE AlphaCursorDown (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 5 *)
PROCEDURE AlphaCursorRight (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 6 *)
PROCEDURE AlphaCursorLeft (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 7 *)
PROCEDURE AlphaCursorHome (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 8 *)
PROCEDURE EraseToEndOfScreen (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 9 *)
PROCEDURE EraseToEndOfLine (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 10 *)
PROCEDURE PlaceAlphaCursor (Handle : INTEGER;
Row : INTEGER;
Column : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 11 *)
PROCEDURE AlphaText (Handle : INTEGER;
VAR Text : ARRAY OF CHAR);
(* VDI-Funktionsnummer: 5, Escape: 12 *)
PROCEDURE ReverseVideoOn (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 13 *)
PROCEDURE ReverseVideoOff (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 14 *)
PROCEDURE InquireAlphaCursor (Handle : INTEGER;
VAR Row : INTEGER;
VAR Column : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 15 *)
PROCEDURE InquireTablet (Handle : INTEGER;
VAR Status : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 16 *)
PROCEDURE HardCopy (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 17 *)
PROCEDURE PlaceGraphicCursor (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 18 *)
PROCEDURE RemoveLastGraphicCursor (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 19 *)
PROCEDURE PrinterFormAdvance (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 20 *)
PROCEDURE PrintWindow (Handle : INTEGER;
VAR PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 21 *)
PROCEDURE PrinterClearDisplayList (Handle : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 22 *)
PROCEDURE PrintBitImageFile (Handle : INTEGER;
VAR FileName : ARRAY OF CHAR;
AspectRatio : INTEGER (*0..1*);
ScaleX : INTEGER (*0..1*);
ScaleY : INTEGER (*0..1*);
HorizAlignment : INTEGER (*0..2*);
VertAlignment : INTEGER (*0..2*);
PointsXY : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 23 *)
PROCEDURE InquirePrinter (Handle : INTEGER;
VAR Slices : INTEGER;
VAR SliceHeight : INTEGER;
VAR LineHeight : INTEGER;
VAR PageLines : INTEGER;
VAR DivisionFactor : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 24 *)
PROCEDURE PrintAlphaText (Handle : INTEGER;
Text : ARRAY OF CHAR);
(* VDI-Funktionsnummer: 5, Escape: 25 *)
PROCEDURE SelectPalette (Handle : INTEGER;
Palette : INTEGER (*0..1*);
VAR SelectedPalette : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 60 *)
PROCEDURE GenerateTone (Handle : INTEGER;
Frequency : INTEGER;
Duration : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 61 *)
(* Im ROM-Treiber nicht implementiert *)
PROCEDURE SetToneFlag (Handle : INTEGER;
Action : INTEGER (*-1..1*);
VAR Status : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 62 *)
(* Im ROM-Treiber nicht implementiert *)
PROCEDURE SetTabletResolutionLPI (Handle : INTEGER;
ResolutionX : INTEGER;
ResolutionY : INTEGER;
VAR SetResolutionX : INTEGER;
VAR SetResolutionY : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 81 *)
PROCEDURE SetTabletResolutionLines (Handle : INTEGER;
ResolutionX : INTEGER;
ResolutionY : INTEGER;
VAR SetResolutionX : INTEGER;
VAR SetResolutionY : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 82 *)
PROCEDURE SetTabletOrigin (Handle : INTEGER;
OriginX : INTEGER;
OriginY : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 83 *)
PROCEDURE GetTabletDimensions (Handle : INTEGER;
VAR DimensionX : INTEGER;
VAR DimensionY : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 84 *)
PROCEDURE SetTabletAlignment (Handle : INTEGER;
DeltaX : INTEGER;
DeltaY : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 85 *)
PROCEDURE SetCameraFilm (Handle : INTEGER;
FilmIndex : INTEGER;
Lightness : INTEGER (*-3..3*));
(* VDI-Funktionsnummer: 5, Escape: 91 *)
PROCEDURE InquireCameraFilmName (Handle : INTEGER;
FilmIndex : INTEGER;
VAR FilmName : ARRAY OF CHAR;
VAR Status : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 92 *)
PROCEDURE SetFilmExposure (Handle : INTEGER;
Expose : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 93 *)
PROCEDURE UpdateMetafileExtents (Handle : INTEGER;
MinX : INTEGER;
MinY : INTEGER;
MaxX : INTEGER;
MaxY : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 98 *)
PROCEDURE WriteMetafileItem (Handle : INTEGER;
IntegerInSize : INTEGER;
VAR IntegerIn : ARRAY OF INTEGER;
PointsInSize : INTEGER;
VAR PointsIn : ARRAY OF INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 99 *)
PROCEDURE SetPageSize (Handle : INTEGER;
PageWidth : INTEGER;
PageHeight : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 99, Opcode: 0 *)
PROCEDURE SetCoordinates (Handle : INTEGER;
LowerLeftX : INTEGER;
LowerLeftY : INTEGER;
UpperRightX : INTEGER;
UpperRightY : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 99, Opcode: 1 *)
PROCEDURE ChangeGemFileName (Handle : INTEGER;
VAR FileName : ARRAY OF CHAR);
(* VDI-Funktionsnummer: 5, Escape: 100 *)
PROCEDURE SetLineOffset (Handle : INTEGER;
Offset : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 101 *)
(* Nicht offiziell Dokumentiert. Benutzung auf eigene Gefahr *)
PROCEDURE SetSystemFont (Handle : INTEGER;
FontAddress : ADDRESS);
(* VDI-Funktionsnummer: 5, Escape: 102 *)
(* Nicht offiziell Dokumentiert. Benutzung auf eigene Gefahr *)
PROCEDURE Escape2000 (Handle : INTEGER;
Copies : INTEGER);
(* VDI-Funktionsnummer: 5, Escape: 2000 *)
(* -------------- VDI Globale Variablen & Aufrufprozedur --------------- *)
PROCEDURE CallVDI;
CONST
MaxIntegerInSize = 128;
MaxIntegerOutSize = 128;
MaxPointsInSize = 128;
MaxPointsOutSize = 128;
VAR
Control : ARRAY [0..11] OF INTEGER;
IntegerIn : ARRAY [0..MaxIntegerInSize - 1] OF INTEGER;
IntegerOut : ARRAY [0..MaxIntegerOutSize - 1] OF INTEGER;
PointsIn : ARRAY [0..MaxPointsInSize - 1] OF INTEGER;
PointsOut : ARRAY [0..MaxPointsOutSize - 1] OF INTEGER;
Parameters : ARRAY [0..4] OF ADDRESS;
END VDI.